As the Internet's popularity grows, more businesses are establishing a presence on the Internet. These businesses typically set up web sites that run one or more web applications. One disadvantage of doing business on the Internet is that if the web site goes down, becomes unresponsive or otherwise is not properly serving customers, the business is losing potential sales and/or customers. Similar issues exist with Intranets and Extranets. Thus, there is a need to monitor live web applications and web sites to make sure that they are running properly.
One particular scenario that web application developers seek to avoid is a task that runs too slowly. For example, it may be expected that a task will take a fraction of one second to complete its functions; however, due to something going wrong, the task executes for thirty seconds. A task running too slowly can degrade performance of a web site, degrade performance of a web application, and cause an application to fail, or cause a web site to fail. Thus, there is a need to avoid poorly performing tasks.
Some tasks involve a transaction that may span more than one software application. Further, these applications can be executing on different computers. For example, when a costumer logs onto a vendor's web site to purchase a book, first an ordering application on the vendor's web site is invoked to do initial processing of the book order. Then, as a part of the same transaction, a credit card verification application on a remote server is contacted to verify the customer's credit card information. Additional applications can be invoked to complete the transaction.
If the transaction takes too long to complete, it can be difficult to determine where the problem exists. Technology has been developed for tracing transactions, even if the transaction is spread over multiple applications and/or computing devices. Transaction tracing helps the customers identify where the problem is along the transaction chain. For example, a transaction trace may be presented in a graphical user interface. The trace may show how much time the transaction took to execute in the different applications. Unfortunately, transaction tracing consumes resources, such as communication connections that are used to forward transaction data to a computer where the transaction trace is presented to the user. Thus, having all tracing turned on all the time may not be an acceptable proposition to customers with high volume of transactions due to the negative performance impact of reporting data on each transaction.
Thus, there is a need to improve the ability to efficiently report data about transactions.